package level03;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;

public class MainApp {
    public static void main(String[] args) throws Exception {
        //创建一个Properties集合类
        Properties properties = new Properties();

        //调用读取功能将文件中的路径读取出来获取字节码对象
        InputStream inputStream = MainApp.class.getClassLoader().getResourceAsStream("config.properties");

        ClassLoader classLoader = MainApp.class.getClassLoader();

        //加载配置文件
        properties.load(inputStream);

        //从配置文件中获取类名
        String className = properties.getProperty("className");

        //反射获取对象
        Class<?> aClass = Class.forName(className);

        //创建对象实例
        Object instance = aClass.newInstance();

        //通过反射获取对象方法
        Method method = aClass.getDeclaredMethod("run");

        //反射获取 run 方法并执行
        method.invoke(instance);
    }
}
